/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Servlets;

import Beans.Jogador;
import Beans.Jogo;
import Beans.Usuario;
import Daos.JogadorDao;
import codigoGeral.PessoasParticipantesJogoX;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import sun.rmi.server.Dispatcher;

/**
 *
 * @author aluno
 */
public class ServletSalvarDadosPaginaConvidados extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
//pega sessao
        HttpSession sessão = request.getSession(true);
        //pega usuario da sessao
        Usuario usuarioSistema = (Usuario) sessão.getAttribute("usuario");

        //lista no banco todos os jogos que pariticipo
        List<PessoasParticipantesJogoX> pessoasDoJogoAgain = new ArrayList<PessoasParticipantesJogoX>();




        //pega lista de jogadores naquele jogo
        Jogo jogo = (Jogo) sessão.getAttribute("codigoJogo");

        System.out.println("codigo jogo " + jogo.getId());
        List<Jogador> pegaJogador = new JogadorDao().getPorJogo(jogo);
        for (Jogador jogador : pegaJogador) {
            System.out.println("jogo id " + jogador.getId());
            System.out.println("jogo usuario_id " + jogador.getUsuario().getNome());

        }




        //lista as opcoes e grava no banco de dados
        for (int i = 0; i < pegaJogador.size(); i++) {
            String confirmacao = request.getParameter("confirmacao" + i);
            System.out.println("confirmacao do cara " + confirmacao);

            //so faz alguma coisa se usuario tiver escolhido alguma alternativa
            if (confirmacao != null) {
                if (Integer.parseInt(confirmacao) != 0) {


                    Jogador jogador = pegaJogador.get(i);
                    System.out.println("Confirmacao jogo " + i + ": " + confirmacao);

                    jogador.setConfirmacao(Integer.parseInt(confirmacao));
                    new JogadorDao(jogador).persist();
                }
            }






        }


        //lista novamente o banco e pega as alterações feitas nos jogos
        for (int i = 0; i < pegaJogador.size(); i++) {
            PessoasParticipantesJogoX pessoa = new PessoasParticipantesJogoX(
                    pegaJogador.get(i).getUsuario().getNome(),
                    pegaJogador.get(i).getConfirmacao().toString(),
                    pegaJogador.get(i).getJogo().getDataJogo(),
                    pegaJogador.get(i).getJogo().getHorario().getHorarioChegada(),
                    pegaJogador.get(i).getUsuario().getTelefone1());
            pessoasDoJogoAgain.add(pessoa);

        }



        sessão.removeAttribute("pessoasDoJogo");
        sessão.setAttribute("pessoasDoJogo", pessoasDoJogoAgain);

        response.sendRedirect("convidados.jsp");


    }
}
